![Scientific and Technical Journal
of Information Technologies, Mechanics and Optics](/images/mag-ntv.png)
TESTING OF MULTITHREADED APPLICATIONS WITH LOCKS ON NON-ATOMIC VARIABLES
![Scientific and Technical Journal
of Information Technologies, Mechanics and Optics](/images/mag-ntv.png)
Annotation
Subject of Research. The paper presents the study of fuzz testing algorithm for “data race” type fault finding in multithreaded software. The algorithm is implemented in the Google TSan tool. The disadvantage of the studied algorithm is the inability to test software products which use non-atomic variables. At this, the use of such tool is excluded for testing of modern applications that implement joint access of program streams to data. We propose a new algorithm for fuzz testing of multithreaded applications and a method for its implementation in the fuzz testing module of the Google TSan tools. Method. Various combinations of the execution of program streams are the input data in the process of fuzz testing of multithreaded applications. The proposed method of fuzz testing for multithreaded software applications assumes that errors in multithreaded applications manifest themselves only at the threads switching points, also called synchronization points. The thread scheduler is implemented as simply as possible. Each thread is assigned with a status marker tracking its activity during the program running. A thread can be in an unknown state (until the first synchronization point), in a state of execution, in a state of waiting in a queue for execution, as well as in a state where the thread has spent its execution quantum but has not reached the synchronization point. Such thread state is automatically changed to the state of waiting at the synchronization point. Thread control is carried out using a separate program thread that monitors the status of all threads and exposes the corresponding marker to the threads that have spent the execution quantum. The error search mechanism is implemented in the software product at the compilation stage by specifying the appropriate options. Main Results. A new fuzz testing module has been integrated in the Google TSan tool, which finds “data race” errors in any multithreaded applications, both with synchronization of access to shared data and with shared access to data. Practical Relevance. Verification of multithreaded software with shared access to data, in particular case of applying non-atomic variables, is especially relevant for the heavily loaded scalable software systems.
Keywords
Постоянный URL
Articles in current issue
- ANALYTICAL REVIEW OF METHODS FOR EMOTION RECOGNITION BY HUMAN FACE EXPRESSIONS
- PULSED LASER DEPOSITION OF ALUMINUM NITRIDE THIN FILMS ONTO SAPPHIRE SUBSTRATES
- DIFFUSE REFLECTION ELECTRON SPECTROSCOPY IN STUDY OF BLOOD SERUM WITH MULTIPLE MYELOMA
- AMBER IDENTIFICATION BY FOURIER TRANSFORM–RAMAN SPECTROSCOPY
- PARAMETER SETTING OF PILOT BEHAVIORAL DYNAMIC MODEL IN AIRCRAFT CONTROL LOOP
- CURRENT TRENDS IN DEVELOPMENT AND PRODUCTION OF NANOSCALE DRUG DELIVERY SYSTEMS
- DENIAL-OF-SERVICE ATTACK ANALYSIS BY MQTT PROTOCOL
- SEARCH METHODS FOR ABNORMAL ACTIVITIES OF WEB APPLICATIONS
- DYNAMICS OF CENTRALITY MEASURES OF RANDOM GRAPH MATHEMATICAL MODELS
- METHOD OF TOPOLOGICAL ROUGHNESS OF DYNAMIC SYSTEMS: APPLICATIONS TO SYNERGETIC SYSTEMS
- HEAT EXCHANGER FOR NEUTRON THERMALIZATION DEVICE INBEAM RESEARCH VESSEL REACTOR
- SIMULATION OF ELECTRONIC EQUIPMENT THERMAL REGIME BASED ON THERMAL IMAGING RESULTS OF ELEMENT TEMPERATURE FIELDS
- СALCULATION OF THERMOPHYSICAL PROPERTIES OF SLAB LASER MULTI-COMPONENT GAS MEDIUM
- MODELING OF WINDING PROCESSOF COMPOSITE CYLINDRICAL SHELLS
- RESEARCH OF ELECTRIC DRIVE SYSTEMS WITH REAL TIME SOFTWARE CONFIGURABLE CONTROL
- NEURAL NETWORK APPLICATION FOR DETECTION OF ROAD ACCIDENTS